Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming
نویسندگان
چکیده
Object-oriented frameworks are nowadays a common and useful technology used in the implementation of software system families. Despite their benefits, over the last years many researchers have described the inadequacy of object-oriented mechanisms to address the modularization and composition of many framework features, which consequently reduces the extent to which a framework can be extended. The crosscutting nature of many framework features is identified as one of the main causes of these problems. In this paper, we analyze how aspect-oriented programming can help to improve the design, implementation, and extension of object-oriented frameworks. We propose the concept of Extension Join Points (EJPs) as a way of designing and documenting existing crosscutting extension points. EJPs improve framework extensibility, including superior composability of the framework core functionality with other modules or frameworks. Four case studies of frameworks from diverse domains are presented to illustrate our proposal. This paper also discusses lessons learned on the application of our approach to the development and extension of these frameworks.
منابع مشابه
An Aspect-Oriented Approach to Framework Development
In this work, we propose an approach which aims to improve the extensibility of object-oriented frameworks using aspect-oriented programming. Our approach proposes the definition of extension join points in the framework code, which can be extended by means of a set of extension aspects. These aspects are responsible to implement optional, alternative and integration features in the framework. ...
متن کاملAspect-Oriented Design and Implementation of a Java Bytecode Analyzer Framework
We propose a new type of Java bytecode analyzer framework based on aspect-oriented design and programming. We also observe that aspect-oriented design and programming improve separation of concerns of many of the characteristics of the design, including extensibility, type safety, and execution efficiency of its design and implementation, when compared to existing analyzer frameworks based on o...
متن کاملDesigning Modularity Architecture for Multithread Programming
Multithreaded Object-Oriented Programming in concurrency environment using object-oriented technology is a complex activity. Programmers need to be aware of issues unrelated to their domain of problem, and are often unprepared for the challenges of the concurrent object-oriented programming brings. The interaction of their components becomes more complex, and makes it difficult to validate the ...
متن کاملThe C Object System: Using C as a High-Level Object-Oriented Language
The C Object System (COS) is a small C library which implements high-level concepts available in CLOS, OBJECTIVEC and other object-oriented programming languages: uniform object model (class, metaclass and property-metaclass), generic functions, multi-methods, delegation, properties, exceptions, contracts and closures. COS relies on the programmable capabilities of the C programming language to...
متن کاملLessons Learned Building Reusable OO Telecommunication Software Frameworks
Developing complex software systems is expensive and error-prone. Object-oriented (OO) programming languages are heavily touted technologies for reducing software cost and improving software quality. When stripped of their hype, the primary benefits of OO stem from the emphasis on modularity and extensibility, which encapsulate volatile implementation details behind stable interfaces and enhanc...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006